package com.codeshellme.bookmanager.service;

import com.codeshellme.bookmanager.dto.UmsMenu;

import java.util.List;
import java.util.Map;

public interface UmsMenuService {

    List<Map<String, Object>> queryMenus();

    Map<String, Object> queryMenuById(Integer id);

    List<Map<String, Object>> queryAllDirMenus();

    int updateMenu(UmsMenu menu);

    int addMenu(UmsMenu menu);

    int deleteMenuById(Integer id, String type);

    /**
     * 根据用户ID，查询它所属的角色，并查询该角色的菜单
     */
    List<Map<String, Object>> queryRoleMenusByUserId(Integer userId);

    List<Map<String, Object>> queryRoleMenusByUserName(String userName);

    /**
     * 供 SecurityConfig 使用
     * 查询每个菜单的 url 所需的角色
     * 比如要想访问 /role 路径，必须拥有 super或者manager 角色
     *
     * 返回结果
     * /book_borrow	super,user
     * /book_stock	super
     * /menu	    super
     * /role	    super,manager
     * /sys_author	super
     * /sys_book	super
     * /sys_dict	super
     * /user	    super
     */
    List<Map<String, Object>> queryMenuUrlNeedRoleIds();
}
